The present invention is directed towards musical software, and, more particularly, towards a system that integrates musical notation technology with a unique performance generation code and synthesizer to provide realistic playback of musical scores.
Since the mid-1980's, the music notation, music publishing, and pro-audio industry has undergone significant and fundamental change. Technological advances in both computer hardware and software have enabled the development of several software products designed to automate digital music production, such as software synthesizers. Today, both FM and sampling synthesizers are generally available in software form. Another example is the evolution of emulation of acoustical instruments. Using the most advanced instruments and materials on the market today, such as digital sampling synthesizers, high-fidelity multi-track mixing and recording techniques, and expensively recorded sound samples, it is possible to emulate the sound and effect of a large ensemble playing complex music, (such as orchestral works) to an amazing degree. Such emulation, however, is restricted by a number of MIDI-imposed limitations.
Musical Instrument Digital Interface (MIDI) is an elaborate system of control, which is capable of specifying parameters of live musical performance. Digital performance generators, which employ recorded sounds referred to as “samples” of live musical instruments under MIDI control, are theoretically capable of duplicating the effect of live performance.
Effective use of MIDI has mostly been in the form of sequencers, which are computer programs that can record and playback the digital controls generated by live performance on a digital instrument. By sending the same controls back to the digital instrument, the original performance can be duplicated. Sequencers allow several “tracks” of such information to be individually recorded, synchronized, and otherwise edited, and then played back as a multi-track performance. Because keyboard synthesizers play only one “instrument” at a time, such multi-track recording is necessary when using MIDI code to generate a complex, multi-layered ensemble of music.
While it is theoretically possible to create digital performances that mimic live acoustic performances by using a sequencer in conjunction with a sophisticated sample-based digital performance generator, there are a number of problems that limit its use in this way.
First, the instrument most commonly employed to generate such performances is a MIDI keyboard. Similar to other keyboard instruments, a MIDI keyboard is limited in its ability to control the overall shapes, effects, and nuances of a musical sound because it acts primarily as a trigger to initiate the sound. For example, a keyboard cannot easily achieve the legato effect of pitch changes without “re-attack” to the sound. Even more difficult to achieve is a sustained crescendo or diminuendo within individual sounds. By contrast, orchestral wind and string instruments maintain control over the sound throughout its duration, allowing for expressive internal dynamic and timbre changes, none of which are easily achieved with a keyboard performance. Second, the fact that each instrument part must be recorded as a separate track complicates the problem of moment-to-moment dynamic balance among the various instruments when played back together, particularly as orchestral textures change. Thus, it is difficult to record a series of individual tracks in such a way that they will synchronize properly with each other. Sequencers do allow for tracks to be aligned through a process called quantization, but quantization removes any expressive tempo nuances from the tracks. In addition, techniques for editing dynamic change, dynamic balance, legato/staccato articulation, and tempo nuance that are available in most sequencers are clumsy and tedious, and do not easily permit subtle shaping of the music.
Further, there is no standard for sounds that is consistent from one performance generator to another. The general MIDI standard does provide a protocol list of names of sounds, but the list is inadequate for serious orchestral emulation, and, in any case, is only a list of names. The sounds themselves can vary widely, both in timbre and dynamics, among MIDI instruments. Finally, general MIDI makes it difficult to emulate a performance by an ensemble of over sixteen instruments, such as a symphony orchestra, except through the use of multiple synthesizers and additional equipment, because of the following limitations:                MIDI code supports a maximum of sixteen channels. This enables discreet control of only sixteen different instruments (or instrument/sound groups) per synthesizer. To access more than sixteen channels at a time, the prior art systems using MIDI require the use of more than one hardware synthesizer, and a MIDI interface that supports multiple MIDI outputs.        MIDI code does not support the loading of an instrument sound file without immediately connecting it to a channel. This requires that all sounds to be used in a single performance be loaded into the synthesizer(s) prior to a performance.        In software synthesizers, many instrument sounds may be loaded and available for potential use in combinations of up to sixteen at a time, but MIDI code does not support dynamic discarding and replacement of instrument sounds as needed. This also causes undue memory overhead.        MIDI code allows a maximum of 127, scaled volume settings, which, at lower volume levels, often results in a “bumpy” volume change, rather than the desired, smooth volume change.        MIDI code supports pitch bend only by channel, and not on a note-by-note basis. Any algorithmic pitch bends cannot be implemented via MIDI, but must be set up as a patch parameter in the synthesizer. The prior art systems using MIDI also include a pitch wheel, which bends the pitch in real time, based on movements of the wheel by the user.        MIDI code supports panning and pedal commands only by channel, and not on a note-by-note basis.        MIDI code is serial in nature, transmitting only one command at a time (such as a command to turn a note on). Consequently, a MIDI instrument cannot assemble all the notes of a chord into a single event, but must begin each note separately, resulting in an audible “ripple” effect when large numbers of notes are involved.        
In view of the forgoing, consumers desiring to produce high-quality digital audio performances of music scores must still invest in expensive equipment and then grapple with problems of interfacing the separate products. Because this integration results in different combinations of notation software, sequencers, sample libraries, software and hardware synthesizers, there is no standardization that ensures that the generation of digital performances from one workstation to another will be identical. Prior art programs derive music performances from notation send performance data in the form of MIDI commands to either an external MIDI synthesizer or to a general MIDI sound card on the current computer workstation, with the result that no standardization of output can be guaranteed. For this reason, people who desire to share a digital musical performance with someone in another location must create and send a recording.
Sending a digital sound recording over the Internet leads to another problem because music performance files are notoriously large. There is nothing in the prior art to support the transmission of a small-footprint performance file that generates a high-quality, identical audio from music notation data alone. There is no mechanism to provide realistic digital music performances of complex, multi-layered music through a single personal computer, with automatic interpretation of the nuances expressed in music notation, at a single instrument level.
Accordingly, there is a need in the art for a music performance system based on the universally understood system of music notation, that is not bound by MIDI code limitations, so that it can provide realistic playback of scores on a note-to-note level while allowing the operator to focus on music creation, not sound editing. There is a further need in the art for a musical performance system that incorporates specialized synthesizer functions to respond to control demands outside of the MIDI code limitations and provides specialized editing functions to enable the operator to manipulate those controls. Additionally, there is a need in the art to provide all of these functions in a single software application that eliminates the need for multiple external hardware components.